package apIExercise.collection2;

import java.util.*;

public class SubListDemo {
    public static void main(String[] args) {
//        List<Integer> list=new ArrayList<>();
//        list.add(10);
//        list.add(2);
//        list.add(30);
//        list.add(4);
//        System.out.println(list);
//        Collections.sort(list, (Integer o1, Integer o2)-> o1.intValue()-o2.intValue());
//        System.out.println(list);

        List<Integer> list=new ArrayList<>();
        for(int i=0;i<10;i++){
            list.add(i*10);
        }
        System.out.println(list);

        //list提供了获取子集的操作
        //List subList(下标：start，下标end)
        //List<数据类型> 变量名=list.subList(下标，下标)
        List<Integer> list1=list.subList(2,5);//获取list2到4的元素
        System.out.println(list1);//[20, 30, 40]

        //将元素扩大10
        //对子集修改元素原集合也一天修改
        //对原集修改子集也会跟着改变
        //不能对原集合进行删增，不然会操作错误
        for(int i=0;i<list1.size();i++){
            list1.set(i,list1.get(i)*10);
        }
        System.out.println(list1);//[200, 300, 400]
        //注意:对子集的操作就是对原集合对应的元素操作
        System.out.println("list:"+list);
        //对原集修改的数不一定子集会改变
        //要在子集取值的范围类修改，子集才会跟着改变,
        list.set(4,100);
        System.out.println(list1);
        System.out.println("list:"+list);
        //原集合长度修改之后，子集将不能再进行任何操作，操作则发生异常，但是可以重新获取子集
        list.remove(0);//删除下标为0的元素
        //System.out.println(list1);/运行时发生不支持修改异常

    }
}
